<?php

/**
 * Класс сущности видео
 *
 * @author Gennadiy Kozlenko
 */
class VideoEntry {
   
   /**
    * Идентификатор видео
    *
    * @var int
    */
   var $idVideo;
   
   /**
    * Ссылка на страницу с дополнительной информацией по фильму
    *
    * @var string
    */
   var $linkKinopoisk;
   
   /**
    * Название видео
    *
    * @var string
    */
   var $title;
   
   /**
    * Оригинальное название видео
    *
    * @var string
    */
   var $origTitle;
   
   /**
    * Ссылка на изображение видео
    *
    * @var string
    */
   var $image;
   
   /**
    * Год видео
    *
    * @var int
    */
   var $year;
   
   /**
    * Длина видео
    *
    * @var string
    */
   var $length;
   
   /**
    * Trailer
    * 
    * @var string
    */
   var $trailer;
   
   /**
    * Описание видео
    *
    * @var string
    */
   var $description;
   
   /**
    * Массив жанров
    *
    * @var array
    */
   var $genres = array();
   
   /**
    * Массив стран
    *
    * @var array
    */
   var $countries = array();
   
   /**
    * Массив актеров
    *
    * @var array
    */
   var $actors = array();
   
   /**
    * Массив режиссеров
    *
    * @var array
    */
   var $directors = array();
   
   /**
    * Установка идентификатора видео
    *
    * @param int $id
    */
   function setIdVideo($id) {
      $this->idVideo = $id;
   }
   
   /**
    * Получение идентификатора видео
    *
    * @return int
    */
   function getIdVideo() {
      return $this->idVideo;
   }
   
   /**
    * Установка ссылки на страницу с дополнительной информацией по фильму
    *
    * @param string $value
    */
   function setLinkKinopoisk($value) {
      $this->linkKinopoisk = $value;
   }
   
   /**
    * Получение ссылки на страницу с дополнительной информацией по фильму
    *
    * @return string
    */
   function getLinkKinopoisk() {
      return $this->linkKinopoisk;
   }
   
   /**
    * Установка заголовка
    *
    * @param string $value
    */
   function setTitle($value) {
      $this->title = $value;
   }
   
   /**
    * Получение заголовка
    *
    * @return string
    */
   function getTitle() {
      return $this->title;
   }
   
   /**
    * Установка оригинального заголовка
    *
    * @param string $value
    */
   function setOrigTitle($value) {
      $this->origTitle = $value;
   }
   
   /**
    * Получение оригинального заголовка
    *
    * @return string
    */
   function getOrigTitle() {
      return $this->origTitle;
   }
   
   /**
    * Установка изображения
    *
    * @param string $value
    */
   function setImage($value) {
      $this->image = $value;
   }
   
   /**
    * Получение изображения
    *
    * @return string
    */
   function getImage() {
      return $this->image;
   }
   
   /**
    * Установка года
    *
    * @param int $value
    */
   function setYear($value) {
      $this->year = $value;
   }
   
   /**
    * Получение года
    *
    * @return int
    */
   function getYear() {
      return $this->year;
   }
   
   /**
    * Установка продолжительности
    *
    * @param string $value
    */
   function setLength($value) {
      $this->length = $value;
   }
   
   /**
    * Получение продолжительности
    *
    * @return string
    */
   function getLength() {
      return $this->length;
   }
   
   /**
    * Установка трейлера
    * 
    * @param $value
    */
   function setTrailer($value) {
      $this->trailer = $value;
   }
   
   /**
    * Получение трейлера
    *
    * @return string
    */
   function getTrailer() {
      return $this->trailer;
   }
   
   /**
    * Установка описания
    *
    * @param string $value
    */
   function setDescription($value) {
      $this->description = $value;
   }
   
   /**
    * Получение описания
    *
    * @return string
    */
   function getDescription() {
      return $this->description;
   }
   
   /**
    * Установка жанров
    *
    * @param array $genres
    */
   function setGenres($genres) {
      $this->genres = $genres;
   }
   
   /**
    * Добавление жанра
    *
    * @param string $genre
    */
   function addGenre($genre) {
      array_push($this->genres, $genre);
   }
   
   /**
    * Получение жанров
    *
    * @return array
    */
   function getGenres() {
      return $this->genres;
   }
   
   /**
    * Очистка жанров
    *
    */
   function cleanGenres() {
      $this->genres = array();
   }
   
   /**
    * Установка стран
    *
    * @param array $countries
    */
   function setCountries($countries) {
      $this->countries = $countries;
   }
   
   /**
    * Добавление страны
    *
    * @param string $country
    */
   function addCountry($country) {
      array_push($this->countries, $country);
   }
   
   /**
    * Получение стран
    *
    * @return array
    */
   function getCountries() {
      return $this->countries;
   }
   
   /**
    * Очистка стран
    *
    */
   function cleanCountries() {
      $this->countries = array();
   }
   
   /**
    * Установка актеров
    *
    * @param array $actors
    */
   function setActors($actors) {
      $this->actors = $actors;
   }
   
   /**
    * Добавление актера
    *
    * @param string $actor
    */
   function addActor($actor) {
      array_push($this->actors, $actor);
   }
   
   /**
    * Получение актеров
    *
    * @return array
    */
   function getActors() {
      return $this->actors;
   }
   
   /**
    * Очистка актеров
    *
    */
   function cleanActors() {
      $this->actors = array();
   }
   
   /**
    * Установка режиссеров
    *
    * @param array $directors
    */
   function setDirectors($directors) {
      $this->directors = $directors;
   }
   
   /**
    * Добавление режиссера
    *
    * @param string $director
    */
   function addDirector($director) {
      array_push($this->directors, $director);
   }
   
   /**
    * Получение режиссеров
    *
    * @return array
    */
   function getDirectors() {
      return $this->directors;
   }
   
   /**
    * Очистка режиссеров
    *
    */
   function cleanDirectors() {
      $this->directors = array();
   }
   
   /**
    * Get title hash
    */
   function getTitleHash() {
       $title = transliteration(preg_replace('~[^a-zа-я0-9]~u', '', mb_strtolower(html_entity_decode($this->getTitle()), 'UTF-8')));
       $origTitle = transliteration(preg_replace('~[^a-zа-я0-9]~u', '', mb_strtolower(html_entity_decode($this->getOrigTitle()), 'UTF-8')));
       return md5($title . '|' . $origTitle);
   }
   
}
